Displaying auto-generated facts about a music library

ABSTRACT

A method for surfacing auto-generated facts about an online music library is provided, including: receiving from a client device a request to access an online music library associated with a user, the online music library including a plurality of audio files, each of the plurality of audio files including audio data and metadata associated with the audio data; applying a fact template to the metadata to generate a result, the fact template defining an analysis to be performed on the metadata, the fact template defining a threshold requirement for performance of the analysis defined by the fact template; transmitting to the client device a music application code configured to be executed by a browser application on the client device, the music application code including posting logic configured to display the result of the analysis performed according to the fact template in said browser application on the client device.

CLAIM OF PRIORITY

This application claims priority as a continuation of U.S. applicationSer. No. 13/297,603, filed Nov. 16, 2011, now issued as U.S. Pat. No.8,612,442, entitled “DISPLAYING AUTO-GENERATED FACTS ABOUT A MUSICLIBRARY,” the disclosure of which is herein incorporated by reference.

BACKGROUND

1. Field of the Invention

The present invention relates to methods, systems, and computer programsfor surfacing auto-generated facts about a music library.

2. Description of the Related Art

Internet applications have grown tremendously over the years and so havethe functionality provided to devices that access those applications.One area that has seen such growth relates to audio file management. Asusers continue to purchase and store more audio music files on theirdevices, management of those files becomes ever more important.Commonly, users have music libraries on various devices and thosedevices are usually backed up from time to time. If a user has more thanone device, more synchronization is necessary to ensure that each devicehas access to the desired music. As users upgrade their devices or losetheir devices, added complexities arise in syncing new devices to oldermusic libraries. Many times, the management becomes so extensive thatusers lose some or most of their libraries.

To address these issues, services are now being provided to allow onlinecloud storage of their music files. However, improvement is still neededto address various challenges posed by cloud storage. It is in thiscontext that embodiments arise.

SUMMARY

Embodiments of the present invention provide methods, systems, andcomputer programs for surfacing auto-generated facts about a musiclibrary. It should be appreciated that the present invention can beimplemented in numerous ways, such as a process, an apparatus, a system,a device or a method on a computer readable medium. Several inventiveembodiments of the present invention are described below.

In one embodiment, a method for surfacing auto-generated facts about amusic library is provided. The method initiates with receiving from aclient device a request to access an online music library associatedwith a user, the music library including a plurality of audio files,each of the audio files including audio data and metadata associatedwith the audio data. The metadata of the audio files in the musiclibrary are transmitted to the client device. A music application codeis transmitted to the client device, the music application codeconfigured to be executed by a browser application on the client device,the music application code including a fact template defining ananalysis to be performed on the transmitted metadata and posting logicconfigured to display a result of the analysis performed according tothe fact template in said browser application on the client device.

In one embodiment, the posting logic is configured to display the resultin a predefined window of a graphical user interface for managing andstreaming the audio files of the music library.

In one embodiment, the result of the analysis defines a fractionalamount of the music library. In one embodiment, the posting logic isconfigured to adjust an icon in accordance with the fractional amountand display the icon on the client device.

In one embodiment, the analysis defined by the fact template parses oneor more of the following from the metadata: title, genre, artist,duration, rating, number of times played.

In one embodiment, the fact template defines a threshold requirement forperformance of the analysis defined by the fact template.

In one embodiment, the threshold requirement defines a minimum number ofaudio files having a specified metadata feature.

In another embodiment, a method for surfacing auto-generated facts abouta music library on a client device is provided. The method includesexecuting a browser application, and sending a request via the browserapplication to a server to access an online music library associatedwith a user. The music library includes a plurality of audio files, eachof the audio files including audio data and metadata associated with theaudio data. The metadata of the audio files in the music library isreceived from the server. The received metadata is stored in a localcache on the client device. A music application code is received fromthe server. The music application code is executed in the browserapplication on the client device. The execution of the music applicationcode includes performing an analysis of the stored metadata in the localcache as defined by a fact template included in the music applicationcode, and displaying a result of the analysis in the browser applicationon the client device.

In one embodiment, the displaying of the result of the analysis is in apredefined window of a graphical user interface for managing andstreaming the audio files of the music library.

In one embodiment, the result of the analysis defines a fractionalamount of the music library.

In one embodiment, displaying the result of the analysis includesadjusting an icon in accordance with the fractional amount anddisplaying said icon on the client device.

In one embodiment, the analysis defined by the fact template parses oneor more of the following from the stored metadata in the local cache:title, genre, artist, duration, rating, number of times played.

In one embodiment, the fact template defines a threshold requirement forperformance of the analysis defined by the fact template.

In one embodiment, the threshold requirement defines a minimum number ofaudio files having a specified metadata feature.

In another embodiment, a tangible computer readable medium containingprogram instructions embodied thereon for surfacing auto-generated factsabout a music library is provided. The program instructions areconfigured for: receiving from a client device a request to access anonline music library associated with a user, the music library includinga plurality of audio files, each of the audio files including audio dataand metadata associated with the audio data; transmitting the metadataof the audio files in the music library to the client device; andtransmitting to the client device a music application code configured tobe executed by a browser application on the client device, the musicapplication code including a fact template defining an analysis to beperformed on the transmitted metadata and posting logic configured todisplay a result of the analysis performed according to the facttemplate in said browser application on the client device.

In another embodiment, a system for surfacing auto-generated facts aboutan audio library is provided. The system includes an audio storage forstoring an online audio library associated with a user, the audiolibrary including a plurality of audio files, each of the audio filesincluding audio data and metadata associated with the audio data. Aserver is configured to receive from a client device a request to accessthe audio library, and in response to receiving the request, transmitthe metadata of the audio files in the audio library to the clientdevice, and transmit to the client device an audio application codeconfigured to be executed by a browser application on the client device,the audio application code including a fact template defining ananalysis to be performed on the transmitted metadata and posting logicconfigured to display a result of the analysis performed according tothe fact template in said browser application on the client device.

In another embodiment, a method for surfacing auto-generated facts aboutan online music library is provided, including: receiving from a clientdevice a request to access an online music library associated with auser, the online music library including a plurality of audio files,each of the plurality of audio files including audio data and metadataassociated with the audio data; applying a fact template to the metadatato generate a result, the fact template defining an analysis to beperformed on the metadata, the fact template defining a thresholdrequirement for performance of the analysis defined by the facttemplate; transmitting to the client device a music application codeconfigured to be executed by a browser application on the client device,the music application code including posting logic configured to displaythe result of the analysis performed according to the fact template insaid browser application on the client device.

In one embodiment, the music application code defines an interface formanaging and streaming the plurality of audio files of the online musiclibrary; wherein the posting logic is configured to display the resultin a predefined window of the interface.

In one embodiment, the result of the analysis defines a fractionalamount of the online music library.

In one embodiment, the posting logic is configured to adjust an icon inaccordance with the fractional amount and display said icon on theclient device.

In one embodiment, the analysis defined by the fact template parses oneor more of the following from the metadata: title, genre, artist,duration, rating, number of times played.

In one embodiment, the threshold requirement defines a minimum number ofaudio files having a specified metadata feature.

In one embodiment, the specified metadata feature is selected from anartist, a genre, a rating, or a minimum number of plays.

In one embodiment, the threshold requirement defines one of a minimumnumber of audio files or a minimum length of time.

In one embodiment, displaying the result includes displaying a sharebutton for sharing the result to a social network.

In another embodiment, a method for surfacing auto-generated facts aboutan online music library is provided, including: receiving from a clientdevice a request to access an online music library associated with auser, the online music library including a plurality of audio files,each of the plurality of audio files including audio data and metadataassociated with the audio data; applying a plurality of fact templatesto the metadata to generate a plurality of results, each fact templatedefining an analysis to be performed on the metadata, wherein at leastone of the plurality of fact templates defines a threshold requirementfor performance of the analysis defined by the at least one of theplurality of fact templates; storing the plurality of results in aqueue; transmitting to the client device a music application codeconfigured to be executed by a browser application on the client device,the music application code including posting logic configured toretrieve and display results from the queue in said browser applicationon the client device; wherein the posting logic is configured to displaythe results in a predefined window of a graphical user interface formanaging and streaming the plurality of audio files of the online musiclibrary.

In one embodiment, the posting logic is configured to retrieve anddisplay the results from the queue in an order in which the results arestored to the queue.

In one embodiment, the posting logic is configured to retrieve anddisplay the results from the queue based on one or more of user input,user interaction with the graphical user interface, a recent song play,a current song play, or a timer.

In one embodiment, the posting logic is configured to retrieve anddisplay a result from the queue in response to playback of a new song.

In another embodiment, a non-transitory computer readable mediumcontaining program instructions embodied thereon is provided forsurfacing auto-generated facts about an online music library, theprogram instructions for: receiving from a client device a request toaccess an online music library associated with a user, the online musiclibrary including a plurality of audio files, each of the plurality ofaudio files including audio data and metadata associated with the audiodata; applying a fact template to the metadata to generate a result, thefact template defining an analysis to be performed on the metadata, thefact template defining a threshold requirement for performance of theanalysis defined by the fact template; transmitting to the client devicea music application code configured to be executed by a browserapplication on the client device, the music application code includingposting logic configured to display the result of the analysis performedaccording to the fact tem s late in said browser application on theclient device.

Other aspects will become apparent from the following detaileddescription, taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings.

FIG. 1 illustrates a system diagram for enabling access and playing ofmusic files stored in cloud storage, in accordance with one embodimentof the present invention.

FIG. 2 illustrates how user A utilizes a device 106 (e.g. smart phone)to access his or her music library stored in the cloud music storage(CMS) 116, in accordance with one embodiment of the present invention.

FIG. 3 illustrates how a user may upload music to their cloud-basedmusic library, in accordance with an embodiment of the invention.

FIG. 4 illustrates a system for surfacing auto-generated facts about amusic library, in accordance with an embodiment of the invention.

FIG. 5 illustrates the retrieval of metadata associated with audio filesand fact templates for analysis of the metadata, in accordance with anembodiment of the invention.

FIG. 6A illustrates an interface for accessing a music library, inaccordance with an embodiment of the invention.

FIG. 6B illustrates an interface for accessing a music library, inaccordance with an embodiment of the invention.

FIGS. 7A-E illustrate various examples of factual displays, inaccordance with embodiments of the invention.

FIG. 8 illustrates a method for surfacing auto-generated facts about amusic library, in accordance with an embodiment of the invention.

FIG. 9 is a simplified schematic diagram of a computer system forimplementing embodiments of the present invention.

DETAILED DESCRIPTION

The following embodiments describe methods, computer programs, andsystems for surfacing auto-generated facts about a music library.

It will be apparent, that the present embodiments may be practicedwithout some or all of these specific details. In other instances, wellknown process operations have not been described in detail in order notto unnecessarily obscure the present embodiments.

FIG. 1 illustrates a system diagram 100 that defines methods foraccessing and playing music files stored in cloud storage, and improvingthe rate at which playing of a music file response to user selection, isdisclosed in accordance with one embodiment of the present invention.The system includes a plurality of servers that are connected to theInternet 104. The plurality of servers and storage are, in oneembodiment, part of a digital service provider 102. The digital serviceprovider 102, is a system that can include a plurality of servers thatcan provide applications, services, digital content, andinterconnectivity between systems, applications, users, and socialnetworks. For example, the digital service provider 102 can include asearch engine 108, a plurality of servers 110 that provide applicationsfor various business, social, and technology related subject matter,servers that provide user management 112, and servers to provide musicrelated services.

One example digital service provider 102 can be Google Inc., of MountainView, Calif. Other digital service providers can be more focused toprovide only specific services, while others provide a variety ofservices for access, download, viewing, searching, etc. The content canvary greatly, but is commonly presented in digital format and displayedon monitors or screens of devices, computers, smart phones, tablets,etc.

The servers that provide music related services, in one embodiment, areillustrated by the music provider logic (MPL) 114, that executes overone or more servers that are connected to the Internet 104. The musicprovider logic 114 is shown connected to cloud music storage 116. Cloudmusic storage 116 is shown to include a plurality of storage systems,identified as store A, store B, and store N. The various storage systemsthat hold music data and music metadata, are provided with fast accessto the Internet, for providing music data on demand to users requiringaccess to their music library stored in cloud music storage 116. In oneembodiment, users can access the cloud music storage 116 by way of aplurality of devices 106. The plurality of devices can include any typeof device having a processor and memory, wired or wireless, portable ornot portable. In the example illustrated in FIG. 1, user A is shown tohave device 106 (device A). Device 106 is shown to include communicationlogic for transmitting and receiving data between device 106 and theInternet 104.

The communication logic (Tx/Rx) can include various types of networkinterface circuitry, radio-communication (e.g. wireless), cell towercommunication, or interconnected wiring connected to Internet serviceproviders. Device 106 is also shown to include a display having a screen120, local storage 124, and a processor 130. Local storage 124 caninclude cache memory 126, persistent storage 128, and other logic. Inthis example, device 106 is shown to include graphical icons (e.g.,graphical user interfaces GUIs) that represent a play list. The screen120 can be a touch-screen, or a display typically provided by aflat-panel display, a cathode ray tube (CRT), or other media capable ofrendering a display. Still further, device 106 can have its displayseparate from the device, similar to a desktop computer or a laptopcomputer. Still further yet, device 106 can be in the form of a smartphone, a tablet computer, or hybrids that provide touch-screencapability in a portable form factor. One example device can include aportable phone device that runs an operating system and is provided withaccess to various applications (apps) that may be obtained over theInternet, and executed on the local portable device (e.g., smart phone,tablet, laptop, desktop, etc.).

In one embodiment, the user of device 106 can install an applicationthat provides cloud storage of music files, and access to the storagecloud music files from the device 106. Once the user's music files areuploaded to the cloud music storage 116, the user's music files areassociated to a library of the user. In one embodiment, a plurality ofusers can access the same application and can upload their own musicfiles to create their own library, which will be stored in the cloudmusic storage 116.

Each of such users can then access the cloud music storage 116 throughan application on their device 106 to render and play selected musicfiles on their device, when the device 106 has access to the Internetand associated servers of the music providing logic 114 and cloud musicstorage 116. Accordingly, users can access the music application ontheir device 106, access all music files stored in cloud music storage116, arrange music titles in their music library into playlists, addmusic to the cloud music storage 116, delete music from the cloud musicstorage 116, and purchase music that is added to the cloud music storage116. These changes are maintained and managed by the music providerlogic 114 and music provider logic 114 will provide access to thevarious users to their music files stored in the cloud music storage116, based on their selections during use of the application.

FIG. 2 illustrates how user A utilizes a device 106 (e.g. smart phone)to access his or her music library stored in the cloud music storage(CMS) 116, in accordance with one embodiment of the present invention.As shown, the device 106 will include a screen 120, and associatedgraphical icons that present a thumbnail of an application 140,associated with a music application. Application 140, as describedherein, relates to an application that provides a user with access tohis or her music library which has been previously added to the clubmusic storage 116. If the user is a new user to the application 140, thenew user can download application 140 to device 106 from at least oneserver 110 of the digital service provider 102.

Once the application has been downloaded and installed on device 106,the icon representing application 140 will be rendered on the displayscreen of device 106. Initially, the user will be prompted to selectmusic to add to the cloud music storage 116. The music may be added fromfiles currently maintained by the user on his or her device 106, onother devices of the user such as computers, other smart phone and ortablets, or other storage media. Additionally, the user can add musicfiles that may be part of a music library maintained by anotherapplication. The other application may maintain a specific format forthe music, and the music can be obtained and translated to standardizemusic files for addition to the cloud music storage 116.

Once the user has managed his library to add, modify, or adjust themusic files present in the cloud music storage 116, the user can accessapplication 140 and various options from graphical user interfacesprovided on the screen 120 of device 106. In the illustrated example,device 106 will open application 140 through various graphical userinterface screens, such as interface 140 a. Interface 140 a can includevarious menus, selection icons, configuration icons, displays,advertisements, buttons, listings, etc. In this example, the interface140 a may include an icon that lists the users library 160, the usersplay list 162, and music title icons 164. Music title icons can berepresented by graphical artwork that represents artwork associated withthe various music files present in the users library. The users libraryis illustrated by title icons 164, shown as A-H.

The title icons 164 are rendered on the screen 120 upon obtainingmetadata from the cloud music storage 116, which may be present in datastore 150. Music provider logic 114 will include request processingmodule 144 that manages the requests and communication between varioususers applications 140 and the cloud music storage 116. The requestprocessing module (RPM) 144 is also in communication with a playprocessing module (PPM) 146. In order to render the title icons 164 onthe screen of the device 106, the music processing logic 114 willutilize the request processing module 144 to obtain metadata 142 fromthe data store 150.

The metadata 142 will be the metadata associated with the various musicfiles stored in data store 150 for the requesting user. The metadata 142provides information regarding each of the titles stored in the cloudmusic storage 116, and sufficient information to render the title icons164 on the screen of device 106, and provide text information, durationinformation, genre information, and other data that describes aspects orcharacteristics of the music files. One example of metadata is an ID3tag, which can contain information such as title, artist, album, year,track number, genre, etc. As shown, when the user selects play list 162on device 106, a play list graphical user interface is shown identifyingparticular songs that have been arranged by the user.

The playlist A represents various songs that were selected by the userto be part of playlist A. The user can have various playlists, and theselection of playlist A is only provided as one example of a playlistthat includes music files that are played in the order E→D→A→B. Once theuser selects a corresponding play button or clicks on one of the audiofiles in the playlist, the music files will begin to play in the orderarranged and defined by the user in his or her playlist A.

FIG. 3 illustrates how a user A may upload music to their cloud-basedmusic library, in accordance with an embodiment of the invention. Asshown, the music application 140 is executed in a memory 170 of thedevice 106. The device 106 includes persistent storage 128 whichcontains general storage 174 and local music storage 176. The localmusic storage 176 includes various music files 178 which the user A hasstored on the device 106. The music application 140 provides aninterface 140 a shown on the display 120 of the device 106, whichenables the user A to manually or automatically upload one or more ofthe music files 178 to the user's music library 186.

In one embodiment, the music application 140 detects the music files 178and communicates with the music provider logic 114 via the Internet 104.The music provider logic 114 executes on a front end server 180. Themusic provider logic 114 communicates with a locker server 182 whichmanages access to a locker storage 184. The locker storage 184 containsvarious users' individual music libraries, including user A's musiclibrary 186. The music library 186 includes various audio files, each ofwhich is defined by audio data 188 and associated metadata 190. Thus, inone embodiment, the music application 140 transmits one or more of thelocally stored music files 178 to the music provider logic 144 whichaccesses the locker server 182 to store the music files within theuser's music library 186.

It will be noted that music files from various other sources may also beuploaded to the user's music library 186. For example, music files froman external music source 192 that is available via the Internet 104 canbe uploaded to the user's music library 186. In one embodiment, themusic application 140 enables the user A to access, listen to, andauthorize uploading of a music file from the external source 192. Oneexample of an external music source is an online music store 194, fromwhich the user A may purchase music for downloading to the user's musiclibrary. It will be appreciated that in the illustrated embodiment, bypurchasing music from the music store 194, the user A causes a musicfile to be transferred from the music store 194 to the user A's musiclibrary 186. This is distinguished from a conventional online purchasewhere data is transferred to the user's client device. In the presentlydescribed embodiment, the data is transferred to a cloud-based storagelibrary, which the user then accesses utilizing a client device 106.

FIG. 4 illustrates a system for surfacing auto-generated facts about amusic library, in accordance with an embodiment of the invention. In oneembodiment, the user accesses their music library via a browserapplication 200 executing on the user's client device. In response to arequest to access the user's music library, the front end server 180provides a web-based interface 140 a that is rendered by the browser200, and which enables the user to access and manage their musiclibrary. The request also triggers downloading of library data 200 intothe client device's local cache 126. The library data 200 includesvarious kinds of data relating to the user's music library, and caninclude metadata 202 from the audio files contained in the user's musiclibrary, playlists 204, and history data 206.

Additionally, the request to access the music library triggersdownloading of script code (e.g. javascript) to the client device thatis configured to surface auto-generated facts about the user's musiclibrary. In one embodiment, the script code includes a library analyzer208 and posting logic 214. The library analyzer 208 is configured toperform analysis of the library data 200 according to one or moredownloaded fact templates 210. The fact templates define analyticalconstructs for determining particular facts of interest about the user'smusic library, and are described in further detail below. In oneembodiment, the fact templates are configured for analysis of only themetadata 202 of the user's music library; whereas in other embodiments,the fact templates are configured for analysis of other data such asplaylist data 204, library history 206, or any other kind of datapertaining to the user's music library.

The library analyzer 208 applies the fact templates 210 to the locallystored library data 200 to yield factual results 212, which are loadedin a queue 216 of the posting logic 214 for eventual display on theinterface 140 a. In order to display a factual result, a display logic218 generates display code 224 (e.g. HTML code) which defines a displayof the factual result in a predefined location 226 of the interface 140a. In one embodiment, a trigger 220 is defined to trigger the displaylogic 218 to retrieve a factual result from the queue 216 for display onthe interface 140 a.

In one embodiment, the queue 216 functions in a first-in-first-outmanner, such that the trigger 220 triggers retrieval of factual resultsfrom the queue in the order in which they are stored. In otherembodiments, the trigger 220 may be configured to trigger the displaylogic 218 to retrieve specific types of factual results from the queuein a preferential manner based on factors such as user input andinteraction with the interface 140 a, current or recent song plays, etc.For example, if the user is currently playing a song or album by aparticular artist, then the trigger 220 could be configured topreferentially trigger display of a factual result relating to theartist or the artist's genre if such a result is available in the queue.In one embodiment, the trigger 220 is activated based on user inputsand/or library access activity. For example, the next factual result inthe queue 216 could be triggered for display each time a new song isplayed, each time the user activates a particular feature, or each timethe interface page is refreshed. In another embodiment, a timer 222activates the trigger 220 at predefined intervals, so that the displayof results in the interface 140 a cycles through the results in thequeue. The predefined intervals can be periodic, scheduled, randomlygenerated, etc.

In one embodiment, the library analyzer 208 accesses a supplemental dataprovider 228 in order to perform the analysis defined by a particularfact template. For example, the supplemental data provider 228 mayprovide information relating to the user's music library, such as songlyrics, song statistics, artist statistics, ratings/popularityinformation, etc.

In one embodiment, results can be stored and associated with the user'smusic library, thereby providing a historical record of facts which areindicative of the state of the user's music library at the specifictimes when the facts were determined Fact templates can be configured todefine analysis constructs which utilize this historical fact data togenerate interesting new facts about the user's library.

In one embodiment, the posting logic 214 is configured to facilitatesharing of the results from the analysis of the library data 200. Forexample, the posting logic 214 could be configured to enable sharing ofa result on a social network 230.

FIG. 5 illustrates the retrieval of metadata associated with audio filesand fact templates for analysis of the metadata, in accordance with anembodiment of the invention. As shown, the client device 106 executes amusic application 140. In one embodiment, the music application 140 canbe defined by a browser application and downloaded script code as hasbeen described above. In other embodiments, the music application 140can be a standalone application, an extension or plug-in, etc.

The music provider logic 114 includes a metadata identifier 240 that isconfigured to identify and retrieve metadata associated with the audiofiles contained in the user's music library. In some instances, theremay be audio files with incomplete metadata. Therefore, in oneembodiment, the retrieved metadata can be supplemented from an externalsupplemental data provider 242, that provides additional metadata. Itwill be noted that metadata from the supplemental data provider 242 canbe written to the audio files in the user's music library to fill inincomplete metadata fields or replace or correct existing metadata. Asnoted previously, the retrieved metadata is sent to the client where itis stored in a local cache.

Additionally, a fact template storage 244 stores various fact templates246, which define analytical constructs for the determination of factualresults relating to the user's music library. In one embodiment, eachfact template 246 defines a specific analysis of the cached metadata inorder to provide a factual result which can be displayed to the user.Examples of facts about the user's library which can be determinedaccording to fact templates include the following: percentage of musiclibrary that has or has not been played; most popular words in songtitles; percentage of library from a certain decade; number of songs ofa particular artist versus number of songs in a particular genre; totalamount of time spent listening to music (e.g. provided in days oranother time measurement); total amount of time of music of a certaingenre in library; which genre is most neglected based on amount of songsplayed; percentage of library that is most liked/disliked; artist withmost songs in library that have not been played; number of hours spentlistening to a specific artist; etc. Various additional examples offacts about a music library which may be determined and presented areprovided in Table I below.

TABLE I You love the [whatever decade is the highest percentage]! X% ofyour library is from that decade. 30% of your music library has neverbeen played Your longest track is “Bla bla bla” at 45 minutes. This islonger than your 30 shortest songs. Is your Led Zeppelin collection justfor looks? They're your biggest artist without a single play. Monday'sfine for tunes: You listen to more music on that day than any other. Youhave 1 song each for 30% of the artists in your library 40% of the songsin your library have unspecified genres The most popular genres in yourlibrary are “Rock,” “Pop,” and “Electronic” You have the most songs bythese artists: “The Beatles,” “The Rolling Stones” and “Fleetwood Mac”“Never Gonna Give You Up” is your most skipped song Compare percentageof music listened web vs. mobile Rate at which your music libraryexpands (i.e. how many songs added per day/total songs) (thumbs up icon)You love 1% of your library (you love 0% of your library, looks like youdon't use thumbs-up!) (thumbs down icon) You don't like 6% of yourlibrary (if you can cross check weather) Show genres, songs, etc. thatyou like to listen to on rainy, sunny, snowy days etc. The most popularwords in your song titles are “peace,” “love,” and “pancakes” X: Theaverage number of songs per genre in your library Y: The average numberof artists per genre in your library Z: The average number of songs perartists in your library S: The average number of albums per artist inyour library You have 7.8 days of music in your library You could go Xdays without running out of music You have 7.8 days of “Rock” in yourlibrary 12% of your library is by an unspecified artist Tuesday is aquiet day: You're least likely to be using Google Music on a Tuesday Youlove [whatever genre is the highest percentage]! X% of your library isX. “You should look for more music in X, Y, Z, genre; you only have onesong of each of these.” (a set of esoteric genres that user only has onesong from) Most played playlists Total # of songs played Most playedgenre(s) You have the most songs from these genres . . . but your mostplayed genres are . . . (could also cite just one genre) Genredistribution of your 50 most played songs You have the most albums by XYou have 10 tracks with the title X # of artists played This is one ofyour most played songs, but you haven't played it recently Total # ofhours spent listening to music (compare with various activities/eventsrequiring similar amount of time)

In one embodiment, a fact template 246 may also define a thresholdrequirement before the calculation defined by the fact template isperformed or before a particular fact is displayed. For example, somefacts about a music library may not be particularly interesting untilthe library has reached a certain size. Therefore, the fact template forsuch a fact may define a threshold requirement that the library containa minimum number of files before the analysis defined by the facttemplate is performed to provide the factual result. Other examples ofthreshold requirements could include the following: a minimum number ofsongs from a particular artist or genre; a minimum total length of timeof the library; a minimum or maximum percentage of the library that isof a particular genre; a certain amount that a music library has beenplayed (as measured by number of song plays, e.g.); a certain number oftracks/songs that have been rated; etc.

While certain embodiments have generally been described with referenceto analysis of metadata and other data according to fact templates beingperformed on a client device, it will be appreciated that in otherembodiments, such analysis may be performed at the server and theresults then transmitted to the client device. For example, in oneembodiment, the aforementioned library analyzer 208 is situated on aserver, with the results of the analysis being transmitted to theposting logic 214 on the client device. In another embodiment, theposting logic 214 can also be situated on the server, with the displaycode 224 being transmitted to the client device for rendering on theclient device's display.

FIG. 6A illustrates an interface for accessing a music library, inaccordance with an embodiment of the invention. The interface includes asearch bar 250 for enabling the user to search their music library basedon entered key words. The interface also includes a menu panel 252, fromwhich the user may choose different views of the library. For example,if the user selects the “Artists” category from the menu panel, then theartists in the user's library are displayed, from which the user mayselect a particular artist to view the songs and albums associated withthat artist; whereas if the user selects “Genres” from the menu panel252, then the various genres within the user's music library are shown,from which the user may select a particular genre to view songs withinthat genre. In the illustrated embodiment, the user has selected“Charts” from the menu panel, and thus various charts are shown in theinterface display. For example, a top songs chart 256, a top artistschart 258, and a top albums chart 260 are displayed.

A fact display 262 presents a fact about the user's music library at apredefined location in the interface display. The fact display 262includes descriptive text 264 which describes the fact as well as agraphical icon 266 that provides a graphical indication of the fact. Inthe illustrated embodiment, the descriptive text 264 states that 77% ofthe user's music has never been played. As shown, the graphical icon 266is a pie chart that is configured to display the fractional amount ofthe fact (77%).

In one embodiment, scroll buttons 268 are provided which enable the userto cycle to the next or previously displayed fact about the user's musiclibrary. Additionally, a share button 270 is provided to enable the userto share the fact via various communication methods, such as via asocial network, e-mail, etc.

FIG. 6B illustrates an interface for accessing a music library, inaccordance with an embodiment of the invention. As shown, the interfaceincludes a fact display 280 for displaying a factual result about theuser's music library based on analysis of metadata in accordance withprinciples described herein. In the illustrated embodiment, the factdisplay 280 includes text 282 which indicates that the user has spent atotal of one week listening to music. Also, the fact display 280includes a graphical icon 284 in the form of a clock, indicating thetype of factual display which is being shown.

FIGS. 7A-E illustrate various examples of factual displays, inaccordance with embodiments of the invention. FIG. 7A illustrates afactual display which indicates the most popular words in a library'ssong titles. FIG. 7B illustrates a factual display indicating a decadefrom which a large percentage of the user's library is from. FIG. 7Cillustrates a factual display indicating the the user has more songsfrom a particular artist that all songs of a particular genre. FIG. 7Dillustrates a factual display indicating that the user has a certainnumber of days of particular genre of music in the user's library. FIG.7E illustrates a factual display indicating that a specific genre is theuser's most neglected genre.

FIG. 8 illustrates a method for surfacing auto-generated facts about amusic library, in accordance with an embodiment of the invention. Atmethod operation 290, the method initiates with executing a browserapplication. At method operation 292, a request is sent via the browserapplication to a server to access an online music library associatedwith a user. The music library includes a plurality of audio files, eachof the audio files including audio data and metadata associated with theaudio data. At method operation 294, the metadata of the audio files inthe music library is received from the server. At method operation 296,the received metadata is stored in a local cache on the client device.At method operation 298, music application code from the server. Atmethod operation 300, the music application code is executed in thebrowser application on the client device. At method operation 302, thestored metadata in the local cache is analyzed according to a facttemplate included in the music application code. At operation 304, aresult of the analysis is displayed in the browser application on theclient device.

While presently described embodiments of the invention have generally bedescribed with reference to music files and to a music library, it willbe appreciated that the principles described herein apply equally to anytype of audio file having associated metadata or any kind of audiolibrary.

FIG. 9 is a simplified schematic diagram of a computer system 902 forimplementing embodiments of the present invention. FIG. 9 depicts anexemplary computer environment for implementing embodiments of theinvention. It should be appreciated that the methods described hereinmay be performed with a digital processing system, such as aconventional, general-purpose computer system. Special purposecomputers, which are designed or programmed to perform only onefunction, may be used in the alternative. The computer system 502includes a processor 504, which is coupled through a bus to memory 506,permanent storage 508, and Input/Output (I/O) interface 510.

Permanent storage 508 represents a persistent data storage device suchas a hard drive or a USB drive, which may be local or remote. Networkinterface 512 provides connections via network 514, allowingcommunications (wired or wireless) with other devices. It should beappreciated that processor 504 may be embodied in a general-purposeprocessor, a special purpose processor, or a specially programmed logicdevice. Input/Output (I/O) interface 510 provides communication withdifferent peripherals and is connected with processor 504, memory 506,and permanent storage 508, through the bus. Sample peripherals includedisplay 522, keyboard 518, mouse 520, removable media device 516, etc.

Display 522 is configured to display the user interfaces describedherein. Keyboard 518, mouse 520, removable media device 516, and otherperipherals are coupled to I/O interface 510 in order to exchangeinformation with processor 504. It should be appreciated that data toand from external devices may be communicated through I/O interface 510.Embodiments of the invention can also be practiced in distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a wired or a wireless network.

Embodiments of the present invention can be fabricated as computerreadable code on a non-transitory computer readable storage medium. Thenon-transitory computer readable storage medium holds data which can beread by a computer system. Examples of the non-transitory computerreadable storage medium include permanent storage 508, network attachedstorage (NAS), read-only memory or random-access memory in memory module506, Compact Discs (CD), Blu-ray™ discs, flash drives, hard drives,magnetic tapes, and other data storage devices. The non-transitorycomputer readable storage medium may be distributed over anetwork-coupled computer system so that the computer readable code isstored and executed in a distributed fashion.

Additionally, FIG. 9 shows various types of devices that can connect tothe network, such as the internet. The devices include servers, tabletcomputers, smartphones, laptops, desktops, etc. The various devices anrun operating systems and the operating systems can vary frommanufacturer to manufacturer.

Some, or all operations of the method presented herein are executedthrough a processor, such as processor 504 of FIG. 9. Additionally,although the method operations were described in a specific order, itshould be understood that some operations may be performed in adifferent order, when the order of the operations do not affect theexpected results. In addition, other operations may be included in themethods presented, and the operations may be performed by differententities in a distributed fashion, as long as the processing of theoperations is performed in the desired way.

In addition, at least one operation of some methods performs physicalmanipulation of physical quantities, and some of the operationsdescribed herein are useful machine operations. Embodiments presentedherein recite a device or apparatus. The apparatus may be speciallyconstructed for the required purpose or may be a general purposecomputer. The apparatus includes a processor capable of executing theprogram instructions of the computer programs presented herein.

Although the foregoing embodiments have been described with a certainlevel of detail for purposes of clarity, it is noted that certainchanges and modifications can be practiced within the scope of theappended claims. Accordingly, the provided embodiments are to beconsidered illustrative and not restrictive, not limited by the detailspresented herein, and may be modified within the scope and equivalentsof the appended claims.

What is claimed is:
 1. A method for surfacing auto-generated facts aboutan online music library, comprising: receiving from a client device arequest to access an online music library associated with a user, theonline music library including a plurality of audio files, each of theplurality of audio files including audio data and metadata associatedwith the audio data; applying a fact template to the metadata associatedwith the plurality of audio files to generate a result, the facttemplate defining an analysis to be performed on the metadata, the facttemplate defining a threshold requirement for performance of theanalysis defined by the fact template; transmitting to the client devicea music application script code configured to be executed by a browserapplication on the client device, the music application script codeincluding posting logic configured to display the result of the analysisperformed according to the fact template in said browser application onthe client device.
 2. The method of claim 1, wherein the musicapplication script code defines an interface for managing and streamingthe plurality of audio files of the online music library; wherein theposting logic is configured to display the result in a predefined windowof the interface.
 3. The method of claim 1, wherein the result of theanalysis defines a fractional amount of the online music library.
 4. Themethod of claim 3, wherein the posting logic is configured to adjust anicon in accordance with the fractional amount and display said icon onthe client device.
 5. The method of claim 1, wherein the analysisdefined by the fact template parses one or more of the following fromthe metadata: title, genre, artist, duration, rating, number of timesplayed.
 6. The method of claim 1, wherein the threshold requirementdefines a minimum number of audio files having a specified metadatafeature.
 7. The method of claim 6, wherein the specified metadatafeature is selected from an artist, a genre, a rating, or a minimumnumber of plays.
 8. The method of claim 1, wherein the thresholdrequirement defines one of a minimum number of audio files or a minimumlength of time.
 9. The method of claim 1, wherein displaying the resultincludes displaying a share button for sharing the result to a socialnetwork.
 10. A method for surfacing auto-generated facts about an onlinemusic library, comprising: receiving from a client device a request toaccess an online music library associated with a user, the online musiclibrary including a plurality of audio files, each of the plurality ofaudio files including audio data and metadata associated with the audiodata; applying a plurality of fact templates to the metadata associatedwith the plurality of audio files to generate a plurality of results,each fact template defining an analysis to be performed on the metadata,wherein at least one of the plurality of fact templates defines athreshold requirement for performance of the analysis defined by the atleast one of the plurality of fact templates; storing the plurality ofresults in a queue; transmitting to the client device a musicapplication script code configured to be executed by a browserapplication on the client device, the music application script codeincluding posting logic configured to retrieve and display results fromthe queue in said browser application on the client device; wherein theposting logic is configured to display the results in a predefinedwindow of a graphical user interface for managing and streaming theplurality of audio files of the online music library.
 11. The method ofclaim 10, wherein the posting logic is configured to retrieve anddisplay the results from the queue in an order in which the results arestored to the queue.
 12. The method of claim 10, wherein the postinglogic is configured to retrieve and display the results from the queuebased on one or more of user input, user interaction with the graphicaluser interface, a recent song play, a current song play, or a timer. 13.The method of claim 10, wherein the posting logic is configured toretrieve and display a result from the queue in response to playback ofa new song.
 14. A non-transitory computer readable medium containingprogram instructions embodied thereon for surfacing auto-generated factsabout an online music library, the program instructions for: receivingfrom a client device a request to access an online music libraryassociated with a user, the online music library including a pluralityof audio files, each of the plurality of audio files including audiodata and metadata associated with the audio data; applying a facttemplate to the metadata associated with the plurality of audio files togenerate a result, the fact template defining an analysis to beperformed on the metadata, the fact template defining a thresholdrequirement for performance of the analysis defined by the facttemplate; transmitting to the client device a music application scriptcode configured to be executed by a browser application on the clientdevice, the music application script code including posting logicconfigured to display the result of the analysis performed according tothe fact template in said browser application on the client device. 15.The non-transitory computer readable medium of claim 14, wherein themusic application script code defines an interface for managing andstreaming the plurality of audio files of the online music library;wherein the posting logic is configured to display the result in apredefined window of the interface.
 16. The non-transitory computerreadable medium of claim 14, wherein the result of the analysis definesa fractional amount of the online music library; wherein the postinglogic is configured to adjust an icon in accordance with the fractionalamount and display said icon on the client device.
 17. Thenon-transitory computer readable medium of claim 14, wherein theanalysis defined by the fact template parses one or more of thefollowing from the metadata: title, genre, artist, duration, rating,number of times played.
 18. The non-transitory computer readable mediumof claim 14, wherein the threshold requirement defines a minimum numberof audio files having a specified metadata feature; wherein thespecified metadata feature is selected from an artist, a genre, arating, or a minimum number of plays.
 19. The non-transitory computerreadable medium of claim 14, wherein the threshold requirement definesone of a minimum number of audio files or a minimum length of time. 20.The non-transitory computer readable medium of claim 14, whereindisplaying the result includes displaying a share button for sharing theresult to a social network.